# import numpy as np  
# from scipy import stats  
  
# # 数学分数列表  
# class_scores = [72, 76, 68, 78, 62, 59, 64, 85, 70, 75, 61, 74, 87, 83, 54, 76, 56, 66, 68, 62]  
  
# # 计算平均分数  
# class_mean = np.mean(class_scores)  
  
# # 进行单样本t检验，以全校平均分数65为比较值  
# t_statistic, p_value = stats.ttest_1samp(class_scores, 65)  
  
# # 打印结果  
# print(f"平均分：{class_mean:.2f}")  
# print(f"t统计量：{t_statistic:.2f}")  
# print(f"p值：{p_value:.4f}")  
  
# # 在显著性水平0.05下，判断p值是否小于0.05  
# alpha = 0.05  
# if p_value < alpha:  
#     print(f"在显著性水平0.05下，该班级的数学平均分数高于全校的平均分数。")  
# else:  
#     print(f"在显著性水平0.05下，该班级的数学平均分数并不显著高于全校的平均分数。")

import numpy as np  
from scipy import stats  
  
# A公司产品的寿命
a_company = np.array([150, 400, 720, 500, 930])  
# B公司产品的寿命  
b_company = np.array([50, 200, 150, 400, 750, 400, 150])  
  
# 进行两独立样本的t检验，这里我们假设方差不等（equal_var=False）  
t_statistic, p_value = stats.ttest_ind(a_company, b_company, equal_var=False)  
  
# 输出结果  
print(f"t统计量: {t_statistic:.2f}")  
print(f"p值: {p_value:.4f}")  
  
# 判断在显著性水平0.05下，两家公司产品的使用寿命是否有显著差异  
alpha = 0.05  
if p_value < alpha:  
    print(f"在显著性水平0.05下，两家公司产品的使用寿命有显著差异。")  
else:  
    print(f"在显著性水平0.05下，两家公司产品的使用寿命没有显著差异。")

import matplotlib.pyplot as plt  
  
# 定义与R代码中相同的数值列表  
Type2 = [2, 3, 3, 4]  
Type3 = [10, 7, 9, 6]  
Type4 = [9, 11, 10, 10]  
  
# 创建一个数据字典，用于在箱线图中标记不同的数据集  
data = {'Type2': Type2, 'Type3': Type3, 'Type4': Type4}  
  
# 使用matplotlib的pyplot模块来绘制箱线图  
plt.boxplot(data.values(), labels=data.keys())  
  
# 显示图形  
plt.show()

# import numpy as np  
# import time  

# # 设置随机种子
# np.random.seed(int(time.time()))  
  
# # 设定样本大小(进行一千万次实验)  
# n_samples = 10000000  

# # 输入参数，u为标准值，e为误差限，p为误差倍数
# p = 0.01 

# R2 = 10
# e2 = p*R2

# R3 = 1
# e3 = p*R3

# R4 = 1
# e4 = p*R4

# R5 = 100
# e5 = p*R5

# # r2、r3、r4、r5都服从标准正态分布，且相互独立 
# r2 = np.random.normal(R2, e2/3, n_samples)  
# r3 = np.random.normal(R3, e3/3, n_samples)  
# r4 = np.random.normal(R4, e4/3, n_samples)  
# r5 = np.random.normal(R5, e5/3, n_samples)  
  
# # 计算K = r2*r5/r3*r4  
# # 使用NumPy的机器精度eps来避免除以零  
# eps = np.finfo(float).eps  
# r3[np.abs(r3) < eps] = eps  
# r4[np.abs(r4) < eps] = eps 
# K = r2 * r5/(r3 * r4) 
  
# # 对K进行排序  
# K_sorted = np.sort(K)  
  
# # 计算95%/99.7%置信区间的上下界  
# lower_bound1 = K_sorted[int(0.05 * n_samples)]  
# upper_bound1 = K_sorted[int(0.95 * n_samples)]  

# lower_bound2 = K_sorted[int(0.003 * n_samples)]  
# upper_bound2 = K_sorted[int(0.997 * n_samples)]  
  
# print(f"95%置信区间的下界: {lower_bound1}")  
# print(f"95%置信区间的上界: {upper_bound1}")

# print(f"99.7%置信区间的下界: {lower_bound2}")  
# print(f"99.7%置信区间的上界: {upper_bound2}")


